<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 1. 数组的扁平化：将多维数组转化为一维数组
        let arr = [1, [2, [3, [4, 5]]], 6];
        let arr1 = [1, 2, 3, 4, 5, 6,];

        /* 
            2. flat() 
                方法会按照一个可指定的深度递归遍历数组，
                并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。
            3. 语法：
                var newArray = arr.flat([depth])
               depth 可选，指定要提取嵌套数组的深度，默认值为 1。
            4. 返回值
                 一个包含将数组与子数组中所有元素的新数组。(原数组不变)
        */
        let arr2 = arr.flat();
        console.log(arr);  // 原数组不变
        console.log(arr2); // 默认是 1

        console.log('---------设置不同深度--------------');
        console.log(arr.flat(2));
        console.log(arr.flat(3));
        // 不管嵌套多少层
        console.log(arr.flat(Infinity)); 
    </script>
</body>

</html>